<?php
namespace Api\Controller;
use Think\Controller;
/**
 * 判断Api token
 * @author lwbang
 */
class TokenController extends Controller {
	
	/**
	 *   验证token
	 * 	 当方法进入的时候验证app上的token是否和数据库中的token一致
	 */
	protected function _initialize(){
		if(IS_AJAX){
			$appToken = I('post.apptoken','','strval');
			if(!$this->isApp($appToken)){
				$this->ajaxReturn(array('status'=>-1,'errMsg'=>'token不正确'));
				exit;
			}
			return true;
		}
		$this->error('非法请求','Home/Index/index');
		exit;
	}
	
	/**
	 * 返回应用的token值
	 * @return String
	 * @author Lwbang
	 */
	private function getAppToken() {

		//判断如果session中不存在appToken那么将他从数据库中出放入session中
		if (!session('?appToken')) {
			//操作optoins表
			$model = M('options');
			//查询当前option_name为app_token的值
			$appToken = $model -> where(array('option_name' => 'app_token')) -> getField('option_value');
			
			session('appToken',$appToken);
		}
		return session('appToken');

	}

	/**
	 * 判断是否为App的请求 比对两个token的值
	 * 如果两个值相等那么表示为手机请求
	 * @return Boolean
	 * @author Lwbang
	 */
	protected function isApp($token) {
			
			$dbToken = $this -> getAppToken();
			//返回数据库中的token值
			if ($token == $dbToken) {
				return true;
			}
			return false;
	}

}
